<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>DB_SEQUENCE-&gt;open()</title>
    <link rel="stylesheet" href="apiReference.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB C API Reference" />
    <link rel="up" href="seq.html" title="Chapter 11.  The DB_SEQUENCE Handle" />
    <link rel="prev" href="seqinitial_value.html" title="DB_SEQUENCE-&gt;initial_value()" />
    <link rel="next" href="seqremove.html" title="DB_SEQUENCE-&gt;remove()" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">DB_SEQUENCE-&gt;open()</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="seqinitial_value.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 11. 
                The DB_SEQUENCE Handle 
        </th>
          <td width="20%" align="right"> <a accesskey="n" href="seqremove.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="seqopen"></a>DB_SEQUENCE-&gt;open()</h2>
          </div>
        </div>
      </div>
      <pre class="programlisting">#include &lt;db.h&gt;

int
DB_SEQUENCE-&gt;open(DB_SEQUENCE *seq, DB_TXN *txnid, DBT *key, 
                  u_int32_t flags); </pre>
      <p>
         The <code class="methodname">DB_SEQUENCE-&gt;open()</code> method opens the
         sequence represented by the <span class="bold"><strong>key</strong></span>.
         The key must be compatible with the underlying database specified
         in the corresponding call to 
         <a class="xref" href="seqcreate.html" title="db_sequence_create">db_sequence_create</a>.
    </p>
      <p>
         The <code class="methodname">DB_SEQUENCE-&gt;open()</code> <span>
            <span>
                  method returns a non-zero error value on failure and 0 on success.
            </span>
            
        </span>
    </p>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idm140711172602144"></a>Parameters</h3>
            </div>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idm140711172601328"></a>key</h4>
              </div>
            </div>
          </div>
          <p>
                  The <span class="bold"><strong>key</strong></span> specifies which
                  record in the database stores the persistent sequence
                  data.
             </p>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idm140711172595920"></a>flags</h4>
              </div>
            </div>
          </div>
          <p>
                  The <span class="bold"><strong>flags</strong></span> parameter must
                  be set to 0 or by bitwise inclusively 
                  <span class="bold"><strong>OR</strong></span>'ing together one or
                  more of the following values:
             </p>
          <div class="itemizedlist">
            <ul type="disc">
              <li>
                <p>
                          <code class="literal">DB_CREATE</code>
                    </p>
                <p>
                         Create the sequence.  If the sequence does not
                         already exist and the <code class="literal">DB_CREATE</code>
                         flag is not specified, the
                         <code class="methodname">DB_SEQUENCE-&gt;open()</code> method will
                         fail.
                    </p>
              </li>
              <li>
                <p>
                         <code class="literal">DB_EXCL</code>
                    </p>
                <p>
                         Return an error if the sequence already exists.
                         This  flag is only meaningful when specified with
                         the <code class="literal">DB_CREATE</code>  flag.
                    </p>
              </li>
              <li>
                <p><a id="seqopen_DB_THREAD"></a>
                          <code class="literal">DB_THREAD</code>
                    </p>
                <p>
                         Cause the <a class="link" href="seq.html" title="Chapter 11.  The DB_SEQUENCE Handle">DB_SEQUENCE</a> 
                         handle returned by <code class="methodname">DB_SEQUENCE-&gt;open()</code> to be
                         <span class="emphasis"><em>free-threaded</em></span>; that is, usable by multiple
                         threads within a single address space.  Note that if multiple threads
                         create multiple sequences using the same database handle that handle
                         must have been opened specifying this flag.
                    </p>
                <p>
                        Be aware that enabling this flag will serialize
                        calls to DB when using the handle across
                        threads. If concurrent scaling is important to
                        your application we recommend opening separate
                        handles for each thread (and not specifying
                        this flag), rather than sharing handles between
                        threads.
                    </p>
              </li>
            </ul>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idm140711172587600"></a>txnid</h4>
              </div>
            </div>
          </div>
          <p>
                          If the operation is part of an application-specified transaction, the
                          <span class="bold"><strong>txnid</strong></span> parameter is a transaction
                          handle returned from <a class="xref" href="txnbegin.html" title="DB_ENV-&gt;txn_begin()">DB_ENV-&gt;txn_begin()</a>; if the
                          operation is part of a Berkeley DB Concurrent Data Store group, the
                          <span class="bold"><strong>txnid</strong></span> parameter is a handle returned
                          from <a class="xref" href="envcdsgroup_begin.html" title="DB_ENV-&gt;cdsgroup_begin()">DB_ENV-&gt;cdsgroup_begin()</a>;
                          otherwise NULL. If no transaction handle is specified, but the
                          operation occurs in a transactional database, the operation will be
                          implicitly transaction protected. Transactionally protected operations
                          on a <a class="link" href="seq.html" title="Chapter 11.  The DB_SEQUENCE Handle">DB_SEQUENCE</a>  handle
                          require the <a class="link" href="seq.html" title="Chapter 11.  The DB_SEQUENCE Handle">DB_SEQUENCE</a> 
                          handle itself be transactionally protected during its open if the open
                          creates the sequence.
                     </p>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idm140711172613856"></a>Class</h3>
            </div>
          </div>
        </div>
        <p>
             <a class="link" href="seq.html" title="Chapter 11.  The DB_SEQUENCE Handle">DB_SEQUENCE</a>  
        </p>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idm140711172599584"></a>See Also</h3>
            </div>
          </div>
        </div>
        <p>
             <a class="xref" href="seq.html#seqlist" title="Sequences and Related Methods">Sequences and Related Methods</a> 
        </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="seqinitial_value.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="seq.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="seqremove.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">DB_SEQUENCE-&gt;initial_value() </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> DB_SEQUENCE-&gt;remove()</td>
        </tr>
      </table>
    </div>
  </body>
</html>
